package com.hfh.file;

import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class FileDemo {
    @Test
    public void test6(){
        File file = new File("file\\b.txt");
//        public boolean delete()：删除文件或者文件夹
        file.delete();
//        void deleteOnExit()：当文件存在时，删除文件
        file.deleteOnExit();
    }

    @Test
    public void test5() throws IOException {
//        public boolean createNewFile() ：创建文件。若文件存在，则不创建，返回false
        File file1 = new File("file\\b.txt");
        file1.createNewFile();
//        public boolean mkdir() ：创建文件目录。如果此文件目录存在，就不创建了。
//        如果此文件目录的上层目录不存在，也不创建。
        File file2 = new File("file\\jpg");
        file2.mkdir();
//        public boolean mkdirs() ：创建文件目录。如果上层文件目录不存在，一并创建
        File file3 = new File("file\\txt\\tmp");
        file3.mkdirs();
    }

    @Test
    public void test4(){
        File file = new File("file\\a.txt");
//        public boolean isDirectory()：判断是否是文件目录
        System.out.println(file.isDirectory());
//        public boolean isFile() ：判断是否是文件
        System.out.println(file.isFile());
//        public boolean exists() ：判断是否存在
        System.out.println(file.exists());
//        public boolean canRead() ：判断是否可读
        System.out.println(file.canRead());
//        public boolean canWrite() ：判断是否可写
        System.out.println(file.canWrite());
//        public boolean isHidden() ：判断是否隐藏
        System.out.println(file.isHidden());
    }

    @Test
    public void test3(){
        File file = new File("file\\a.txt");
//        public boolean renameTo(File dest):把文件重命名为指定的文件路径
        File dest1 = new File("file\\a.txt");//可以改文件名
        File dest2 = new File("test\\a.txt");//可以改文件路径
        file.renameTo(dest1);
    }
    @Test
    public void test2(){
        File file = new File("file");
//        public String getAbsolutePath()：获取绝对路径
        System.out.println(file.getAbsolutePath());
//        public String getPath() ：获取相对路径
        System.out.println(file.getPath());
//        public String getName() ：获取名称
        System.out.println(file.getName());
//        public String getParent()：获取上层文件目录路径。若无，返回null
        System.out.println(file.getParent());
//        public long length() ：获取文件长度（即：字节数）。不能获取目录的长度。
        System.out.println(file.length());
//        public long lastModified() ：获取最后一次的修改时间，毫秒值
        System.out.println(file.lastModified());
//        public String[] list() ：获取指定目录下的所有文件或者文件目录的名称数组
        System.out.println(file.list());
//        public File[] listFiles() ：获取指定目录下的所有文件或者文件目录的File数组
        System.out.println(file.listFiles());

    }

    @Test
    public void test1(){
        File file = new File(".");// 当前目录
        System.out.println(file.getAbsolutePath());
    }

    @Test
    public void test(){
        //public File(String pathname)
        //以pathname为路径创建File对象，可以是绝对路径或者相对路径。
        //绝对路径：是一个固定的路径, 从盘符开始
        File file1 = new File("D:\\JavaProject\\newlearn\\day22\\file\\a.txt");
        //相对路径：是相对于某个位置开始
        File file2 = new File("file\\a.txt");

        //public File(String parent, String child)
        // 以parent为父路径，child为子路径创建File对象。
        String parent = "D:\\JavaProject\\newlearn\\day22";
        String child = "file\\a.txt";
        File file3 = new File(parent,child);

        //public File(File parent, String child)
        // 根据一个父File对象和子文件路径创建File对象
        File parent1 = new File("file");
        String child1 = "a.txt";
        File file4 = new File(parent1,child1);
    }
}
